package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 会员等级对象 bdm_good
 *
 * @author ruoyi
 * @date 2024-12-07
 */
@Data
@TableName("bdm_good")
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BdmGood extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 表主键 */
    private Long id;

    /** 商品 主键 */
    @Excel(name = "商品id")
    private Long goodId;

    @Excel(name = "商品等级")
    private Long productLevel;

    /** 商品类型（1实体商品，2虚拟商品） */
    @Excel(name = "商品类型", readConverterExp = "1=实体商品，2虚拟商品")
    private String goodType;

    /** 一级分类id */
    @Excel(name = "一级分类id")
    private Long classOneId;

    /** 一级分类名称 */
    @Excel(name = "一级分类名称")
    private String classOneName;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodName;

    /** 副标题 */
    @Excel(name = "副标题")
    private String subtitle;

    /** 商品主图 */
    @Excel(name = "商品主图")
    private String goodImg;

    /** 外面的主图 */
    @Excel(name = "外面的主图")
    private String goodImgOut;


    /** 商品轮播图 */
    @Excel(name = "商品轮播图")
    private String goodBannerImg;

    /** 商品视频 */
    @Excel(name = "商品视频")
    private String goodVideo;

    /** 商品视频封面 */
    @Excel(name = "商品视频封面")
    private Long goodVideoImg;

    /** 商品标签 */
    @Excel(name = "商品标签")
    private String goodTag;

    /** 商品服务 */
    @Excel(name = "商品服务")
    private String goodService;

    /** 是否上架（1上架，2下架） */
    @Excel(name = "是否上架", readConverterExp = "1=上架，2下架")
    private String isInitiate;

    /** 主商城显示（1显示，2隐藏） */
    @Excel(name = "主商城显示", readConverterExp = "1=显示，2隐藏")
    private String mallDisplay;

    /** 是否启用区域分类（1启用，2不启用） */
    @Excel(name = "是否启用区域分类", readConverterExp = "1=启用，2不启用")
    private String regionClass;

    /** 省 */
    @Excel(name = "省")
    private Long province;

    /** 省名称 */
    @Excel(name = "省名称")
    private String provinceString;

    /** 市 */
    @Excel(name = "市")
    private Long city;

    /** 市名称 */
    @Excel(name = "市名称")
    private String cityString;

    /** 区 */
    @Excel(name = "区")
    private Long region;

    /** 区名称 */
    @Excel(name = "区名称")
    private String regionString;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String mergerName;

    /** 商品详情 */
    @Excel(name = "商品详情")
    private String goodDesc;

    /** 商品规格 */
    @Excel(name = "商品规格")
    private String goodSpecs;

    /** 售价 */
    @Excel(name = "售价")
    private BigDecimal retailPrice;

    /** 划线价（原价） */
    @Excel(name = "划线价", readConverterExp = "原=价")
    private BigDecimal originalPrice;

    /** 成本价 */
    @Excel(name = "成本价")
    private BigDecimal costPrice;

    /** 商品单位（至多3个） */
    @Excel(name = "商品单位", readConverterExp = "至=多3个")
    private String goodUnit;

    /** 商品库存 */
    @Excel(name = "商品库存")
    private String goodInventory;

    /** 库存预警（商品库存少于预警数量，商品列表库存数量标红显示） */
    @Excel(name = "库存预警", readConverterExp = "商=品库存少于预警数量，商品列表库存数量标红显示")
    private String inventoryAlert;

    /** 商品重量 */
    @Excel(name = "商品重量")
    private String goodWeight;

    /** 商品货号 */
    @Excel(name = "商品货号")
    private String productCode;

    /** 库存显示（1显示，2隐藏） */
    @Excel(name = "库存显示", readConverterExp = "1=显示，2隐藏")
    private String inventoryShown;

    /** 销量显示（1显示，2隐藏） */
    @Excel(name = "销量显示", readConverterExp = "1=显示，2隐藏")
    private String salesShown;

    /** 虚拟销量 */
    @Excel(name = "虚拟销量")
    private String virtualSales;

    /** 库存版本号 */
    @Excel(name = "库存版本号")
    private Long inventoryVersion;

    /** 二级分类id */
    @Excel(name = "二级分类id")
    private Long classTwoId;

    /** 二级分类名称 */
    @Excel(name = "二级分类名称")
    private String classTwoName;

    /** 三级id */
    @Excel(name = "三级id")
    private Long classThreeId;

    /** 三级名称 */
    @Excel(name = "三级名称")
    private String classThreeName;

    /** 分类祖级 */
    @Excel(name = "分类祖级")
    private String classAncestors;

    /** 删除标志（1存在，2删除） */
    private String delFlag;

    /** 会员购买权限（1普通，2VIP，3SVIP，4共享店主，5联创，6区域运营中心，7总裁） */
    @Excel(name = "会员购买权限", readConverterExp = "1=普通，2VIP，3SVIP，4共享店主，5联创，6区域运营中心，7总裁")
    private String memberBuyingRights;

    /** 是否参与会员价（1不参与会员折扣独立设置，2参与会员折扣独立设置，3不参与会员折扣） */
    @Excel(name = "是否参与会员价", readConverterExp = "1=不参与会员折扣独立设置，2参与会员折扣独立设置，3不参与会员折扣")
    private String participatingMemberPrice;

    /** vip价 */
    @Excel(name = "vip价")
    private BigDecimal vipPrice;

    /** svip价 */
    @Excel(name = "svip价")
    private BigDecimal svipPrice;

    /** 共享店主价 */
    @Excel(name = "共享店主价")
    private BigDecimal sharePrice;

    /** 联创价 */
    @Excel(name = "联创价")
    private BigDecimal joinPrice;

    /** 区域运营中心价 */
    @Excel(name = "区域运营中心价")
    private BigDecimal operationsPrice;

    /** 总裁价 */
    @Excel(name = "总裁价")
    private BigDecimal presidentPrice;

    /** 积分赠送（1开启，2关闭） */
    @Excel(name = "积分赠送", readConverterExp = "1=开启，2关闭")
    private String pointsBonus;

    /** 赠送类型（1固定值，2百分比） */
    @Excel(name = "赠送类型", readConverterExp = "1=固定值，2百分比")
    private String bonusSet;

    /** 赠送值 */
    @Excel(name = "赠送值")
    private String bounsValue;

    /** 发放等级（1普通，2VIP，3SVIP，4共享店主，5联创，6区域运营中心，7总裁）逗号拼接 */
    @Excel(name = "发放等级", readConverterExp = "1=普通，2VIP，3SVIP，4共享店主，5联创，6区域运营中心，7总裁")
    private String bonusLevel;

    /** 积分抵扣（1可抵扣，2不可） */
    @Excel(name = "积分抵扣", readConverterExp = "1=可抵扣，2不可")
    private String pointsRedemption;

    /** 积分使用数量 */
    @Excel(name = "积分使用数量")
    private String pointsUse;

    /** 抵扣类型  1全积分兑换 2积分+金额兑换 3积分抵扣 */
    @Excel(name = "抵扣类型", readConverterExp = "1=固定值，2百分比，3单件抵扣，4多件累计抵扣，5按数量抵扣(可抵扣金额,==,商=品数量x抵扣金额)")
    private String redemptionSet;

    /** 抵扣值 */
    @Excel(name = "抵扣值")
    private String redemptionValue;

    /** 商品单单奖 */
    @Excel(name = "商品单单奖")
    private BigDecimal singlePrize;

    /** 商品奖金(用于奖金池) */
    @Excel(name = "商品奖金(用于奖金池)")
    private BigDecimal prizePool;

    /** 是否置顶 (1推荐，2否) */
    @Excel(name = "是否置顶", readConverterExp = "1=推荐,2=否")
    private String isTop;

    /** 积分价格 */
    @Excel(name = "积分价格")
    private BigDecimal integralPrice;
    @TableField(exist = false)
    private Integer flag;


    /**
     * 是否为云库存商品 0否 1是
     */
    private Integer ifCloudGood;

    @Excel(name = "共享店主商品奖金")
    private BigDecimal sharedShareBonus;

    @Excel(name = "联产商品奖金")
    private BigDecimal jointProductionBonus;

    @Excel(name = "区域运营商品奖金")
    private BigDecimal regionalOperationBonus;

    @Excel(name = "总裁商品奖金")
    private BigDecimal presidentBonus;

    /**
     * 直推下属奖
     */
    private BigDecimal directPremium;

    /**
     * 间推奖
     */
    private BigDecimal recommendedRoom;

    /**
     * 代理推平级奖
     */
    private BigDecimal agencyGradeAward;

    /**
     * 总裁推共享奖
     */
    private BigDecimal bossShareAward;

    /**
     * 总裁推联创奖
     */
    private BigDecimal bossLianChangAward;

    /**
     * 区域运营推共享店主奖
     */
    private BigDecimal areaShareAward;

    /**
     * 区域运营推总裁奖
     */
    private BigDecimal areaBossAward;

    /**
     * 共享推联创奖
     */
    private BigDecimal shareLianChangAward;

    /**
     * 共享推运营奖
     */
    private BigDecimal shareAreaAward;

    /**
     * 共享推总裁奖
     */
    private BigDecimal shareBossAward;

    /**
     * 联创推运营奖
     */
    private BigDecimal lianChangAreaAward;

    /**
     * 联创推boss奖
     */
    private BigDecimal lianChangBossAward;

    /**
     * 总裁团队奖百分比
     */
    private BigDecimal bossTeamAward;

    /**
     * 运营团队奖百分比
     */
    private BigDecimal operationTeamAward;

    /**
     * 联创团队奖百分比
     */
    private BigDecimal lianchuangTeamAward;


    /** 代理大礼包共享店主商品奖金 */
    @Excel(name = "代理大礼包共享店主商品奖金")
    private BigDecimal dlbSharedShareBonus;

    /** 代理大礼包联产商品奖金 */
    @Excel(name = "代理大礼包联产商品奖金")
    private BigDecimal dlbJointProductionBonus;

    /** 代理大礼包区域运营商品奖金 */
    @Excel(name = "代理大礼包区域运营商品奖金")
    private BigDecimal dlbRegionalOperationBonus;

    /** 代理大礼包总裁商品奖金 */
    @Excel(name = "代理大礼包总裁商品奖金")
    private BigDecimal dlbPresidentBonus;
}
